const nHead = document.head || document.querySelectorAll('head')[0]
const cssExpr = /\.css/
// 定义全局变量，记录已经加载过的 JS 文件
const loaded: string[] = []

function loadJs(url: string, async = false) {
  const node = document.createElement('script')
  node.async = async
  node.src = url
  // 更新 loadedJS 数组，记录已经加载过的 JS 文件
  loaded.push(url)
  nHead.appendChild(node)
}
function loadCss(url: string) {
  const node = document.createElement('link')
  node.rel = 'stylesheet'
  node.href = url
  nHead.appendChild(node)
}
/**
 * 加载指定 URL 对应的 JS/CSS 文件（如果没有加载过的话）
 * @param {string} url - JS 文件的 URL 地址
 * @param {boolean} [async] - 是否异步加载
 */
export function loadResource(url: string, async = false) {
  // 判断是否已经加载过该 JS 文件
  if (loaded.includes(url))
    return

  if (cssExpr.test(url))
    loadCss(url)
  else loadJs(url, async)
}
